/* **************************************************************************
 * Ejemplos de como llamar a la funcion log
 *
 * escribir_logfile(NOMPS, 0, INFO, "en orden");
 * escribir_logfile(NOMPS, 0, WARN, "guarda que estoy desbarrancando");
 * escribir_logfile(NOMPS, gettid(), ERROR, "el sistema no quiere hacer nada");
 * escribir_logfile(NOMPS, gettid(), DEBUG, "tirando paso a paso cañaso");
 * **************************************************************************
 *
 * PARAMETROS
 *
 * 	nomProceso: El nombre del proceso, ej: FileSystemTirateUnPaso.
 *
 * 	threadID: El ID del thread si es que utiliza(LLAMAR A gettid() y pasarlo
 * 			  como parametro o (long int)syscall(224)) SINO 0.
 *
 * 	tipo: INFO, WARN, ERROR, DEBUG.
 *
 * 	dato: Lo que les parezca necesario, ej: "Error recibiendo informacion.", "Puerto abierto correctamente."
 *
 * **************************************************************************
 *
 * LA FUNCION SE VANCA MULTIPLES ACCESO DE DISTINTOS THREADS
 * CONSISTENCIA DEL ARCHIVO LOG
 * 
 * IMPORTATE!!! HAY QUE INICIALIZAR EL SEMEFARO DEL LOG
 * IMPORTATE!!! HAY QUE INICIALIZAR EL SEMEFARO DEL LOG
 * IMPORTATE!!! HAY QUE INICIALIZAR EL SEMEFARO DEL LOG
 * pthread_mutex_init(&semaforo)
 *
 */

#ifndef LOGFILE_H_
#define LOGFILE_H_

/***************************************************************************/
/****************************** INCLUDES ***********************************/
/***************************************************************************/

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/timeb.h>
#include <pthread.h>

/***************************************************************************/
/****************************** DEFINES ************************************/
/***************************************************************************/

#define INFOs 1
#define WARN 2
#define ERROR 3
#define DEBUG 4

/* 	******************************* */
/* 	******************************* */
/*	NOMBRE DEL ARCHIVO LOG			*/
/* 	******************************* */
/* 	******************************* */
#define LOG "logfile.log"

/* 	******************************* */
/* 	******************************* */
/*	DEFINIR EL NOMBRE DEL PROCESO	*/
/* 	******************************* */
/* 	******************************* */
#define NOMPS "Proceso Tu Vieja"

/***************************************************************************/
/****************************** FUNCIONES  *********************************/
/***************************************************************************/

/* LOGS */
extern int32_t escribir_logfile(char *, int32_t, int32_t, char *);

#endif /* LOGFILE_H_ */
